package us.icitap.commandcenter.business.ejb;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;
import javax.jms.ConnectionFactory;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import us.icitap.commandcenter.business.AppUser;
import us.icitap.commandcenter.business.Result;
import us.icitap.commandcenter.business.ejb.dao.Expression;
import us.icitap.commandcenter.business.ejb.persistence.Call;
import us.icitap.commandcenter.business.ejb.persistence.CallReason;
import us.icitap.commandcenter.business.ejb.persistence.CallStatusEnum;
import us.icitap.commandcenter.business.ejb.persistence.CommandCenter;
import us.icitap.commandcenter.business.ejb.persistence.Dispatcher;
import us.icitap.commandcenter.business.ejb.persistence.UniqueNumber;


@Local
public interface IAppStatelessBean {

	Result<AppUser> login();


	Result<List<Call>> getWvCallList(List<Dispatcher> dispatchers);

	Result<List<Call>> getClosedCallList(List<Dispatcher> dispatchers);

	Result<List<Call>> getInitialNewCallList(List<Dispatcher> dispatchers);
	
	Result<Call> startVerification(Call call);

	Result<Call> updateCallInformation(Call call);

	Result<Call> closeVerification(Call call);

	Result<Call> generateUniqueNumber(Call call);

	ConnectionFactory getConnectionFactory();

	Result<List<Call>> getOperatorCallList(String username);

	void sendMessage(Call call, CallStatusEnum prevoiusStatus,
			boolean sendToDispatcher);


	Result<Call> addNewCall(Call call, boolean sendToDispatcher);
	
	
	
}
